package flex.cc.nursing.dto.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.List;


@Data
@ApiModel(value = "服务预约请求实体")
public class AppointmentRequestDTO {

    @ApiModelProperty(value = "订单号", notes = "集采业务通过订单号标识", required = true)
    private String orderNo;
    @ApiModelProperty(value = "合作方订单号")
    private String serialNo;

    @ApiModelProperty(value = "预约时间", notes = "申请预约的时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String appointmentDate;

    @ApiModelProperty(value = "预约结束时间", notes = "申请预约的结束时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String appointmentEndDate;

    @ApiModelProperty(value = "服务预约业务类型", required = true)
    private String businessType;

    @ApiModelProperty(value = "服务预约业务号", notes = "该服务预约对应的业务号，如赔案号、住院号等")
    private String businessNo;

    @ApiModelProperty(value = "联系人姓名", required = true)
    private String contactName;

    @ApiModelProperty(value = "联系人证件类型", required = true)
    private String contactIdType;

    @ApiModelProperty(value = "联系人证件号码", required = true)
    private String contactIdNo;

    @ApiModelProperty(value = "联系人性别", required = false)
    private String contactGender;

    @ApiModelProperty(value = "联系人手机号码", required = true)
    private String contactMobile;

    @ApiModelProperty(value = "服务对象姓名", required = true)
    private String consumerName;

    @ApiModelProperty(value = "服务对象与联系人关系", required = true)
    private String relation;

    @ApiModelProperty(value = "服务对象证件类型", required = false)
    private String consumerIdType;

    @ApiModelProperty(value = "服务对象证件号码", required = false)
    private String consumerIdNo;

    @ApiModelProperty(value = "服务对象证件有效期起期", required = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String consumerIdExpStartdate;

    @ApiModelProperty(value = "服务对象证件有效期止期", required = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String consumerIdExpEnddate;

    @ApiModelProperty(value = "服务对象生日", required = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String consumerBirthday;

    @ApiModelProperty(value = "服务对象性别", required = false)
    private String consumerGender;

    @ApiModelProperty(value = "服务对象手机号码", required = true)
    private String consumerMobile;

    @ApiModelProperty(value = "服务对象所在省份code", required = true)
    private String province;

    @ApiModelProperty(value = "服务对象所在省份value", required = true)
    private String provinceValue;

    @ApiModelProperty(value = "服务对象所在市code", required = true)
    private String city;

    @ApiModelProperty(value = "服务对象所在市value", required = true)
    private String cityValue;

    @ApiModelProperty(value = "服务对象所在区/县code", required = true)
    private String county;

    @ApiModelProperty(value = "服务对象所在区/县value", required = true)
    private String countyValue;

    @ApiModelProperty(value = "服务对象所在详细地址", required = true)
    private String address;

    @ApiModelProperty(value = "服务项目列表", notes = "本次预约的服务分类", required = true)
    private List<ServiceListDTO> serviceList;

    @ApiModelProperty(value = "预约单号", notes = "预约单号", required = true)
    private String reserveNo;

    @ApiModelProperty(value = "服务满意程度", notes = "见“附录”中“服务满意程度”", required = true)
    private String serviceDate;

    @ApiModelProperty(value = "服务评价标签", notes = "见“附录”中“服务评价标签”", required = true)
    private String serviceStartTime;

    @ApiModelProperty(value = "服务星级", notes = "服务星级评分1-5星", required = true)
    private String serviceEndTime;

    @ApiModelProperty(value = "服务评价描述", notes = "服务评价描述", required = true)
    private String serviceComment;

    @ApiModelProperty(value = "备注", notes = "备注", required = true)
    private String remark;

    @ApiModelProperty("服务类型")
    private String serviceType;
    /**
     * 产品代码
     */
    @ApiModelProperty(value = "产品代码")
    private String productCode;

    /**
     * 方案代码
     */
    @ApiModelProperty(value = "方案代码")
    private String planCode;
}
